// 1.0 使用express起一个web服务器
const express = require('express');
const path = require('path');
const cors = require('cors');
// 2.1 导入multer
const multer = require('multer');

// 2.2 自定义一个磁盘操作对象
const storage = multer.diskStorage({
    destination: function (req, file, cb) {
        cb(null, 'uploads')  // 文件保存到uploads文件夹
    },
    filename: function (req, file, cb) {
        // 修改文件名称增加一个扩展名
        // cb(null, file.fieldname + '-' + Date.now())
        // 1.0 定义文件名+扩展名
        let newfileName = file.fieldname + Date.now() + path.extname(file.originalname);
        // 2.0 调用cb函数进行文件重命名
        cb(null, newfileName);
    }
})

// 2.3 初始化upload对象
const upload = multer({ storage: storage });

const server = express();

// 通过server.use()使用cors包，就能是的所有的路由方法能够跨域请求
server.use(cors());

// 增加uploads文件夹的静态资源托管
server.use('/uploads', express.static('uploads'));

// 2.0 用multer去实现一个文件上传的接口
server.post('/uploadFile', upload.single('imgfile'), (req, res) => {
    // 通过req.body获取到上传过来的字符串即可
    console.log(req.body);
    console.log(req.file);
    /*
    req.file:数据格式：
    {
            fieldname: 'imgfile',
            originalname: 'btn.png',
            encoding: '7bit',
            mimetype: 'image/png',
            destination: 'uploads',
            filename: 'imgfile1629599555429.png',
            path: 'uploads\\imgfile1629599555429.png',
            size: 1217
      }
    */

    res.send({ code: 200, msg: '文件上传成功', src: req.file.path });
})

server.listen(3004, () => {
    console.log('3004文件上传接口准备就绪');
})